﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace projekty2
{
    class Validator
    {
        public static bool JeCislo(string paText)
        {
            double pomocna;
            return double.TryParse(paText, out pomocna);
        }

        public static bool EpJeCislo(Control paTextBox, ErrorProvider paErrorProvider, string paSprava)
        {
            if (JeCislo(paTextBox.Text))
            {
                paErrorProvider.SetError(paTextBox, "");
                return true;
            }
            else
            {
                paErrorProvider.SetError(paTextBox, paSprava);
                return false;
            }
        }

        public static bool JePrazdne(string paText)
        {
            return paText.Length == 0;
        }

        public static bool EpJePrazdne(Control paTextBox, ErrorProvider paErrorProvider, string paSprava)
        {
            if (JePrazdne(paTextBox.Text))
            {
                paErrorProvider.SetError(paTextBox, paSprava);
                return true;
            }
            else
            {
                paErrorProvider.SetError(paTextBox, "");
                return false;
            }
        }

        public static bool JeMensiRovnyDatum(DateTime paDatumZakladny, DateTime paDatumPorovnavany)
        {
            return paDatumZakladny.CompareTo(paDatumPorovnavany) <= 0;
        }

        public static bool EpJeMensiRovnyDatum(Control paDatePickerZakladny, ErrorProvider paErrorProvider, string paSprava, DateTimePicker paDatePickerPorovnavany)
        {
            if (JeMensiRovnyDatum(((DateTimePicker)paDatePickerZakladny).Value, paDatePickerPorovnavany.Value))
            {
                paErrorProvider.SetError(paDatePickerZakladny, "");
                return true;
            }
            else
            {
                paErrorProvider.SetError(paDatePickerZakladny, paSprava);
                return false;
            }
        }

        public static bool JeVacsiRovnyDatum(DateTime paDatumZakladny, DateTime paDatumPorovnavany)
        {
            return paDatumZakladny.CompareTo(paDatumPorovnavany) >= 0;
        }

        public static bool EpJeVacsiRovnyDatum(Control paDatePickerZakladny, ErrorProvider paErrorProvider, string paSprava, DateTimePicker paDatePickerPorovnavany)
        {
            if (JeVacsiRovnyDatum(((DateTimePicker)paDatePickerZakladny).Value, paDatePickerPorovnavany.Value))
            {
                paErrorProvider.SetError(paDatePickerZakladny, "");
                return true;
            }
            else
            {
                paErrorProvider.SetError(paDatePickerZakladny, paSprava);
                return false;
            }
        }

        public static bool PresahujeMaxDlzku(string paText, int paDlzka)
        {
            return paText.Length > paDlzka;
        }

        public static bool EpPresahujeMaxDlzku(Control paTextBox, ErrorProvider paErrorProvider, int paDlzka, string paSprava)
        {
            if (PresahujeMaxDlzku(paTextBox.Text, paDlzka))
            {
                paErrorProvider.SetError(paTextBox, paSprava);
                return true;
            }
            else
            {
                paErrorProvider.SetError(paTextBox, "");
                return false;
            }
        }
    }
}
